home *** CD-ROM | disk | FTP | other *** search
/ Dynamic HTML Construction Kit / Dynamic HTML Construction Kit.iso / earthlink / nscomm / java40.jar / netscape / util / ArchivingStack.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  1.6 KB  |  83 lines

  1. package netscape.util;
  2.  
  3. final class ArchivingStack {
  4.    int depth;
  5.    int maxDepth;
  6.    Object[] objArray;
  7.    int[] intArray;
  8.  
  9.    private void growArrays() {
  10.       if (this.maxDepth == 0) {
  11.          this.maxDepth = 8;
  12.       } else {
  13.          this.maxDepth = 2 * this.maxDepth;
  14.       }
  15.  
  16.       Object[] var1 = new Object[2 * this.maxDepth];
  17.       int[] var2 = new int[4 * this.maxDepth];
  18.       if (this.objArray != null && this.intArray != null) {
  19.          System.arraycopy(this.objArray, 0, var1, 0, this.objArray.length);
  20.          System.arraycopy(this.intArray, 0, var2, 0, this.intArray.length);
  21.       }
  22.  
  23.       this.objArray = var1;
  24.       this.intArray = var2;
  25.    }
  26.  
  27.    void pushArchiver(Archiver var1) {
  28.       ++this.depth;
  29.       int var2 = this.depth;
  30.       if (this.depth >= this.maxDepth) {
  31.          this.growArrays();
  32.       }
  33.  
  34.       this.objArray[2 * var2] = var1.currentObject;
  35.       this.objArray[2 * var2 + 1] = var1.currentTable;
  36.       this.intArray[4 * var2] = var1.currentId;
  37.       this.intArray[4 * var2 + 1] = var1.currentColumnCount;
  38.       this.intArray[4 * var2 + 2] = var1.currentRow;
  39.       this.intArray[4 * var2 + 3] = var1.currentColumn;
  40.    }
  41.  
  42.    void pushUnarchiver(Unarchiver var1) {
  43.       ++this.depth;
  44.       int var2 = this.depth;
  45.       if (this.depth >= this.maxDepth) {
  46.          this.growArrays();
  47.       }
  48.  
  49.       this.objArray[2 * var2] = var1.currentObject;
  50.       this.objArray[2 * var2 + 1] = var1.currentTable;
  51.       this.intArray[4 * var2] = var1.currentId;
  52.       this.intArray[4 * var2 + 1] = var1.currentColumnCount;
  53.       this.intArray[4 * var2 + 2] = var1.currentRow;
  54.       this.intArray[4 * var2 + 3] = var1.currentColumn;
  55.    }
  56.  
  57.    void popArchiver(Archiver var1) {
  58.       int var2 = this.depth;
  59.       var1.currentObject = this.objArray[2 * var2];
  60.       this.objArray[2 * var2] = null;
  61.       var1.currentTable = (ClassTable)this.objArray[2 * var2 + 1];
  62.       this.objArray[2 * var2 + 1] = null;
  63.       var1.currentId = this.intArray[4 * var2];
  64.       var1.currentColumnCount = this.intArray[4 * var2 + 1];
  65.       var1.currentRow = this.intArray[4 * var2 + 2];
  66.       var1.currentColumn = this.intArray[4 * var2 + 3];
  67.       --this.depth;
  68.    }
  69.  
  70.    void popUnarchiver(Unarchiver var1) {
  71.       int var2 = this.depth;
  72.       var1.currentObject = this.objArray[2 * var2];
  73.       this.objArray[2 * var2] = null;
  74.       var1.currentTable = (ClassTable)this.objArray[2 * var2 + 1];
  75.       this.objArray[2 * var2 + 1] = null;
  76.       var1.currentId = this.intArray[4 * var2];
  77.       var1.currentColumnCount = this.intArray[4 * var2 + 1];
  78.       var1.currentRow = this.intArray[4 * var2 + 2];
  79.       var1.currentColumn = this.intArray[4 * var2 + 3];
  80.       --this.depth;
  81.    }
  82. }
  83.